cr		equ	0dh	;��� ASCII �������� �������
lf		equ	0ah	;��� ASCII �������� ������
;----------------------------------------------
;
;	Perevod stroki ekrana
;	---------------------
;
Send_crlf:
	push ax
	push dx
	mov ah,2	;Funkciy vivoda
	mov dl,cr	;Vivodimiy simvol
	int 21h		;Vivod simvola
	mov dl,lf
	int 21h		;-"-
	pop dx
	pop ax
	ret
;
;	Ochistka ekrana
;	---------------
;
Clear_screen:
	push ax
	push bx
	push cx
	push dx
	xor al,al	;Ochistit vse okno
	xor cx,cx	;Verhnii levii ugol v (0,0)
	mov dh, 49	;Nijnay stroka ekrana -49
	mov dl, 79	;Pravay granica v 79 stolbce
	mov bh,7	;Primenit normalnie atributi
	mov ah,6	;Ochistit
	int 10h		; okno
	xor dl,dl	;Nulevie koordinati
	xor dh,dh	; kursora
	xor bx,bx	;Nulevaiy videostranica
	xor al,al	;Ustanovka
	mov ah,2	; kursora
	int 10h		; v zadannuy tochku
	pop dx
	pop cx
	pop bx
	pop ax
	ret
;
;	��������� �������
;	-----------------
;
Set_cursor:
	push ax
	push bx
	push cx
	push dx
	mov dh,[es:B]
	shr dh,4
	mov dl,[es:B]
	mov al,dh
	shl al,4
	sub dl,al
	mov al,dl
	mov bl,3
	mul bl
	mov dl,al
	add dl,[es:Nt]
	add dl,5
	add dh,4
        xor bx,bx	;Nulevaiy videostranica
	xor al,al	;Ustanovka
	mov ah,2h	; kursora
	int 10h		; v zadannuy tochku
	pop dx
	pop cx
	pop bx
	pop ax
	ret
;
;	����������� ������� �� ���� ������� �����
;
Cur_left:
	cmp [es:Nt],byte 0
	je .M1
	dec byte [es:Nt]
	jmp .Exit
.M1:	inc byte [es:Nt]
	dec byte [es:B]
.Exit:	call Set_cursor
	ret
;
;	����������� ������� �� ���� ������� �����
;
Cur_top:
	sub [es:B],byte 16
	call Set_cursor
	ret
;
;	����������� ������� �� ���� ������� ������
;
Cur_right:
	cmp [es:Nt],byte 0
	je .M1
	dec byte [es:Nt]
	inc byte [es:B]
	jmp .Exit
.M1:	inc byte [es:Nt]
.Exit:	call Set_cursor
	ret
;
;	����������� ������� �� ���� ������� ����
;
Cur_down:
	add [es:B],byte 16
	call Set_cursor
	ret




